using System;
using System.Collections;
using System.Collections.Generic;
using Me.Prettyprint.Hector.Api.Beans;

namespace Me.Prettyprint.Hector.Api.Query
{
    /// <summary>
    /// A query for the thrift call get_slice
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public interface SliceQuery<K, N, V> : Query<ColumnSlice<N, V>>
	{
        /// <summary>
        /// Set the key to query
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        SliceQuery<K, N, V> SetKey(K key);
        /// <summary>
        /// Set the column names to retrieve
        /// </summary>
        /// <param name="columnNames"></param>
        /// <returns></returns>
        SliceQuery<K, N, V> SetColumnNames(List<N> columnNames);
        SliceQuery<K, N, V> SetRange(N start, N finish, bool reversed, int count);
        SliceQuery<K, N, V> SetColumnFamily(string cf);
	}
}